数组
创建数组方式
数组字面量方式
var a = [];
var a = [,,];(如果省略数组直接量的某个值,省略的元素将被赋予undefined值)
a// [undefined × 2](元素个数=逗号个数)
兼容性:IE8以及更早版本中也可能会创建包含3项的数组。由于IE的实现与其他浏览器不一致,因此强烈建议不要使用上述写法
调用构造函数Array()
var a = new Array();
var a = new Array(10);//10代表数组的长度
var a = new Array('10');//初始化化数组,数组长度为1
数组读和写的方式
读
a[a.length-1]//访问数组最后一项
写
a[100] = 0//这时数组的长度为100,没有初始化的默认值为undefined
数组方法
1.栈方法(后进先出)
push()=>接收/任意数量的参数/,把它们逐渐添加到数组/末尾/,并返回修改后/数组的长度/(后进)
pop()=>数组末尾移除/最后一项/,减少数组的length值,然后返回/移除的项/(先出)
2.队列方法(先进先出)
unshift()=>接收任意数量的参数,把它们逐渐添加到数组/前端/,并返回修改后/数组的长度/(先进)
shift()=>移除数组中的/第一个项/,减少数组的length值,并返回/移除的项/(先出)
3.join()
所有元素都转化为"字符串"并连接在一起
var a = [1,2,3];
a.join();//"1,2,3"
a.join('');//"123"
a.join('-');//"1-2-3"
注意:如果不给join()
方法传入任何值,或者给它传入undefined,则使用逗号作为分隔符。如果数组中某一项的值为null或undefined,调用方法后,以空字符串表示。
4.slice()
不会修改原数组,返回子数组(1个或2个参数,前闭后开[ )),获取子数组
var a = [1,2,3,4,5];
a.slice(0,3);//[1, 2, 3]
a.slice(3);//[4, 5]
a.slice(-3,-1);//[3, 4]
a.slice(-10);//[1, 2, 3, 4, 5]
5.concat()
接收任意数量参数(参数所添加元素)基于当前数组中的所有项创建一个新数组,复制当前数组返回副本,扩展原数组
var a = [1,2,3];
a.concat(4,5);//[1, 2, 3, 4, 5]
a.concat([4,5]);//[1, 2, 3, 4, 5]
a[1, 2, 3](a未改变)
a.concat(4,[5,[6,7]]);//[1, 2, 3, 4, 5,[6,7]]
6.sort()和reverse()
sort()
默认情况下sort()方法按升序排列数组项,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,即使数组中的每一项都是数值,sort()方法比较的也是字符串。
因此sort()方法可以接收一个比较函数作为参数,以便我们指定那个位置位于那个位置前面。比较函数接收两个参数,如果第一个参数位于第二个之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数位于第二个参数之后则返回一个正数。由于比较函数通过返回一个小于0、等于0或大于0的值来影响排序结果,因此减法操作就可以适当的处理所有情况。
重排序方法(默认升序<0)==>a.sort(function(value1,value2){return value1-value2})
var a = ['ab','bc','abc'];
a.sort()//['ab','abc','bc'];
--------------------------------------------
var a = [2,20,3];
a.sort()//[2, 20, 3](20转换为字符串)
--------------------------------------------
var a = ['ant','Bug','cat','Dog'];
a.sort()//["Bug", "Dog", "ant", "cat"](大写字母排前面)
a.sort(function(a,b){a.toLowerCase()<b.toLowerCase()})//["ant", "Bug", "cat", "Dog"]
reverse(): 反转数组项的顺序
7.splice()
数组中插入或删除元素的通用方法,参数可1个,2个或者多个(第一个参数指定了起始位置[,第二个参数指定了应从数组中删除元素个数,后面的指定了需插入元素),返回一个由删除元素组成的数组。
第一个参数指定起始位置
第二个参数指定要删除的项数
第三个以及后面的参数要插入的项
删除
var a = [1,2,3,4,5,6,7,8];
a.splice(4);//[5, 6, 7, 8]
a.splice(1,1);//[2]
插入
a//[1, 3, 4]
a.splice(1,0,'aa','bb');
a//[1, "aa", "bb", 3, 4];
替换
var a = [0,1,2]
a.splice(1,1,'aa');//[1]
a//[0,'aa',2]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。